Due to deficiencies in existing data storage and database technologies, there has been a need for an improved storage platform that provides enhanced abilities to organize, search, and share all types of data in a computer system—a storage platform that extends and broadens the data platform beyond existing file systems and database systems, and that is designed to be the store for all types of data. The invention disclosed in U.S. patent application Ser. No. 10/646,646, filed on Aug. 21, 2003, entitled “STORAGE PLATFORM FOR ORGANIZING, SEARCHING, AND SHARING DATA” (hereinafter, the “Storage Platform Application”), satisfies this need. Synchronization services for this storage platform (including conflict resolution methods) are further provided in the invention disclosed by U.S. patent application Ser. No. 10/646,646, filed on Oct. 24, 2003, entitled “SYSTEMS AND METHODS FOR PROVIDING RELATIONAL AND HIERARCHICAL SYNCHRONIZATION SERVICES FOR UNITS OF INFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM” (hereinafter the “Synchronization Application”) and U.S. Patent Application Ser. No. 10/883,621, filed on Jun. 30, 2004, entitled “SYSTEMS AND METHODS FOR PROVIDING CONFLICT HANDLING FOR PEER-TO-PEER SYNCHRONIZATION OF UNITS OF INFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM (hereinafter the “Conflict Resolution Application”).
As disclosed in Storage Platform Application, the Synchronization Application, and the Conflict Resolution Application (hereinafter collectively referred to as the “Priority Applications,” and where one or more of which comprise what is referred to later herein as “WinFS”), peer-to-peer synchronization is achieved by a first peer requesting and receiving from a second peer in a peer community specific metadata pertaining to changes made since the last synchronization that occurred between said first and second peers. Based on a comparision of this received metadata and existing metadata maintained by the first peer regarding previous changes received from the second peer, the first peer then requests specific change units (each change unit comprising specific elemental changes) from said second peer. Upon receipt of these change units and application by the first peer (thereby completing the synchronization), the first peer then updates its own metadata to reflect both the current state of its data as well as the last updates it has received from the second peer.
The metadata maintained by and exchanged between each peer in a synchronization community is essential to the proper synchronization of the peers in said community. However, metadata can also comprise significant overhead for each peer, and the synchronization processes themselves may consume significant resources. Therefore, what is needed in the art are specific utilizations of metadata to optimize synchronization.